#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QRegExpValidator>
#include <QMessageBox>
#include <QDebug>
#include "GInterpreter.h"
#include "Interpolater.h"
#include "firfilter.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_btnQuit_clicked();

    void on_btnSim_clicked();

    void smooth_and_feed(double incremX, double incremY);

    void on_btnStopSim_clicked();

private:
    Ui::MainWindow *ui;
    MotionPath* basicMotionPath;
    GInterpreter* interpreter;
    Interpolater* interpolater;
    double currentX, currentY;
    FIRFilter* filterX;
    FIRFilter* filterY;
    int zeroOutputNum;
    qlonglong outputCount;

    void initGUI();
    void initInstances();
};

#endif // MAINWINDOW_H
